<template>
  <!-- 全局公共导入组件 像element ui一样直接引用就好了，，不用局部注册了-->
  <uploadExcel :on-success="success" />

</template>

<script>
import { importEmployee } from '@/api/emploees'
export default {
  data() {
    return {
      type: this.$route.query.type
    }
  },
  methods: {
    async success({ header, results }) {
      console.log(11, header, results)
      if (this.type === 'user') {
        const userRelations = {
          '入职日期': 'timeOfEntry',
          '手机号': 'mobile',
          '姓名': 'username',
          '转正日期': 'correctionTime',
          '工号': 'workNumber'
        }
        const arr = []
        // 遍历所有数组
        results.forEach(item => {
          // 需要将每一条数据里面的中文换成英文
          const userInfo = {}
          Object.keys(item).forEach(key => {
            // key 是当前的中文名，找到对应的英文名
            if (userRelations[key] === 'timeOfEntry' || userRelations[key] === 'correctionTime') {
              userInfo[userRelations[key]] = new Date(this.formatExcelTime(item[key], '/')) // 只有这样, 才能入库
              return
            }

            // 每次遍历到一个中文key
            // 翻译成英文key，拿到value值
            // 放入新数组userInfo
            // 三句合并一句   userInfo[userRelations[key]] = item[key]
            const enkey = userRelations[key]
            const value = item[key]
            userInfo[enkey] = value
          })
          arr.push(userInfo)
        })
        console.log(41, arr)
        // 导入接口
        await importEmployee(arr)
        this.$message.success('导入成功')
      }
      //   导入完成，回到上一页
      this.$router.back()
    },

    // 转换日期函数
    formatExcelTime(num, format = '-') {
      num = Number(num)	// 强制类型转化，以防传来的值是字符串
      let millisecond = 0	// 转化后的毫秒数
      if (num > 60) {
        millisecond = (num - 25569) * 60 * 60 * 24 * 1000
      } else {
        millisecond = (num - 25568) * 60 * 60 * 24 * 1000
      }
      const date = new Date(millisecond)	// 根据转化后的毫秒数获取对应的时间
      const yy = date.getFullYear()
      const mm = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
      const dd = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
      return yy + format + mm + format + dd	// 返回格式化后的日期
    }
  }
}
</script>

<style>

</style>
